package com.bgs.travelapp.ticket.service;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.scenic.entity.ScenicEntity;
import com.bgs.travelapp.ticket.entity.TicketEntity;
import com.bgs.travelapp.ticket.entity.sh_areaEntity;

import java.util.List;

/**
 * 门票管理 （后端）
 * gpd
 * 2022-07-15
 */
public interface TicketService {

    /**
     * 新增门票--三级联动（省份查询）（后端---门票管理）
     * @param pid
     * 查询pid为=0的所有省份
     * gpd 2022-07-15 08:30
     * @return
     */
    List<sh_areaEntity> getProvinceAllList(Integer pid);

    /**
     * 新增门票--三级联动（城市查询） （后端---门票管理）
     * @param provinceId
     * 查询provinceId为点击省份的所有城市
     * gpd 2022-07-15 08:40
     * @return
     */
    List<sh_areaEntity> getCityAllList(Integer provinceId);

    /**
     * 新增门票--三级联动（景区查询） （后端---门票管理）
     * @param cityId
     * 查询cityId为点击城市的所有景区
     * gpd 2022-07-15 08:50
     * @return
     */
    List<ScenicEntity> getScenicAllList(Integer cityId);

    /**
     * 新增门票 （后端---门票管理）
     * @param ticketEntity
     * gpd 2022-07-15 09:22
     * @return
     */
    Integer saveTicket(TicketEntity ticketEntity);

    /**
     * 新增门票--查询景区是否重复录入 （后端---门票管理）
     * @param pid
     * 根据pid查询对应数据库中是否有录入的景区
     * gpd 2022-07-15 09:12
     * @return
     */
    List<TicketEntity> getScenicName(Integer pid);

    /**
     * 门票管理分页全查+模糊查（景区名称、景区票价）（后端---门票管理）
     * ticketPrice最低票价
     * ticketPrice1最高票价
     * gpd 2022-07-15 09:32
     * @param pageRequest
     * @param scenicName
     * @return
     */
    PageResult getTicketByPage(PageRequest pageRequest, String scenicName,Integer ticketPrice,Integer ticketPrice1);

    /**
     * 修改门票 （后端---门票管理）
     * gpd 2022-07-15 09:42
     * @param ticketEntity
     * @return
     */
    Integer updateTicket(TicketEntity ticketEntity);

    /**
     * 删除门票 （后端---门票管理）
     * @param id
     * 根据id进行删除
     * gpd 2022-07-15 09:52
     * @return
     */
    Integer deleteTicket(Integer id);

    /**
     * 查询景区剩余门票 （后端---门票管理）
     * @param scenicId
     * gpd 2022-07-15 10:22
     * @return
     */
    List<TicketEntity> getSurplusTicket(Integer scenicId);
}
